import { RNPackage } from '@rnoh/react-native-openharmony/ts';
import type {DescriptorWrapperFactoryByDescriptorTypeCtx, DescriptorWrapperFactoryByDescriptorType} from '@rnoh/react-native-openharmony/ts';
import { RNC } from './generated/ts';


export class RNOHScreensPackage extends RNPackage {
  createDescriptorWrapperFactoryByDescriptorType(ctx:
    DescriptorWrapperFactoryByDescriptorTypeCtx):
    DescriptorWrapperFactoryByDescriptorType {
    return {
      [RNC.RNSFullWindowOverlay.NAME]: (ctx) => new RNC.RNSFullWindowOverlay.DescriptorWrapper(ctx.descriptor),
      [RNC.RNSModalScreen.NAME]: (ctx) => new RNC.RNSModalScreen.DescriptorWrapper(ctx.descriptor),
      [RNC.RNSScreenContainer.NAME]: (ctx) => new RNC.RNSScreenContainer.DescriptorWrapper(ctx.descriptor),
      [RNC.RNSScreenNavigationContainer.NAME]: (ctx) => new RNC.RNSScreenNavigationContainer.DescriptorWrapper(ctx.descriptor),
      [RNC.RNSScreenStack.NAME]: (ctx) => new RNC.RNSScreenStack.DescriptorWrapper(ctx.descriptor),
      [RNC.RNSScreenStackHeaderSubview.NAME]: (ctx) => new RNC.RNSScreenStackHeaderSubview.DescriptorWrapper(ctx.descriptor),
      [RNC.RNSScreenStackHeaderConfig.NAME]: (ctx) => new RNC.RNSScreenStackHeaderConfig.DescriptorWrapper(ctx.descriptor),
      [RNC.RNSSearchBar.NAME]: (ctx) => new RNC.RNSSearchBar.DescriptorWrapper(ctx.descriptor),
    }
  }
}
